package cn.itcast.kafka.config;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * Kafka生产者配置工具类，负责加载外部配置文件
 */
public class KafkaProducerConfig {

    // 配置文件路径
    private static final String CONFIG_FILE = "kafka-producer.properties";
    private static Properties props;

    static {
        // 静态初始化块，加载配置文件
        props = new Properties();
        try (InputStream input = KafkaProducerConfig.class.getClassLoader().getResourceAsStream(CONFIG_FILE)) {
            if (input == null) {
                throw new RuntimeException("无法找到配置文件: " + CONFIG_FILE);
            }
            // 加载配置文件内容到Properties对象
            props.load(input);
        } catch (IOException e) {
            throw new RuntimeException("加载Kafka配置文件失败", e);
        }
    }

    /**
     * 获取Kafka生产者配置
     * @return 配置Properties对象
     */
    public static Properties getProducerProperties() {
        // 返回配置的副本，避免外部修改原配置
        return (Properties) props.clone();
    }
}
